Geographical information such as satellite or aerial photographs, textual data (e.g., directions or descriptions), or any of a variety of types of maps (e.g., road maps, topographical maps, geologic maps, plats and nautical charts) has become increasingly available to information seekers through electronic information sources on the Internet, vehicle navigation systems, handheld devices (e.g., personal digital assistants (PDAs), a smartphone) or any of a variety of other sources. Typically, geographical information can be searched either for a specific address or a particular place or thing, such as a business, an intersection or a named location. In response to a search, information seekers can be presented with a map, photograph or any other information regarding the search location.
The sheer volume of available geographical information is immense. Within the United States of America alone, there are millions of addresses, streets and other geographical objects. Managing and organizing such an enormous volume of data can be a complicated task. In addition, many geographical objects have duplicate names. For example, hundreds of cities and towns include a Main Street and many cities have identical names (e.g., Cadiz, Ohio in the United States and Cadiz, Spain). To be useful, devices that provide geographical information to users need to quickly search a vast volume of geographical data and retrieve the relevant geographical information.
One approach to managing a large volume of data, such as geographical data, includes utilizing a hierarchical data structure. A hierarchical data structure can facilitate differentiating among data objects with identical names. In addition, utilizing a hierarchical arrangement can reduce the necessary scope of a search. Limiting a search to a division within the hierarchical data structure can minimize the amount of data that needs to be searched to retrieve relevant information.
Unfortunately, restriction of searches to divisions within a hierarchical structure can reduce the likelihood that the relevant information will be located during a search of the data structure. For example, if the wrong portion of the hierarchical data structure is searched, the relevant data may not be found, even when the data is present within the data structure and would be found if the entire structure were searched. Subdividing and managing volumes of data using a hierarchical data structure can increase the search speed of the data structure; however, it can also reduce the accuracy and usefulness of the search results.